//返回的是元素对象的集合，以为数组的形式存储；
/*
let lis = document.getElementsByTagName("li");
console.log(lis);
console.log(lis[2]);
//遍历元素对象是动态的
for (let i = 0; i < lis.length; i++) {
    console.log(lis[i]);
}
let ol = document.getElementById("ol");
console.log(ol.document.getElementsByTagName("li"));
*/
//-------------------------------------------------------------------------
//根据类名选择获取元素集合
/*
let boxs = document.getElementsByClassName("box1");
console.log(boxs);
*/
//返回指定选择器的第一个元素对象
/*
let firstBox = document.querySelector(".box1");//类选择
console.log(firstBox);

let secondBox = document.querySelector("#nav");//id选择
console.log(secondBox);

let thirdBox = document.querySelector("li");//标签选择
console.log(thirdBox);
*/
//返回指定选择器的所有元素对象
/*
let firstBox1 = document.querySelectorAll(".box1");//类选择
console.log(firstBox1);

let secondBox1 = document.querySelectorAll("#nav");//id选择
console.log(secondBox1);

let thirdBox1 = document.querySelectorAll("li");//标签选择
console.log(thirdBox1);
*/
//-------------------------------------------------------------------------
//获取body元素
/*
let bodyEle = document.body;
console.log(bodyEle);
console.log(console.dir(bodyEle));
//获取html元素
let htmlEle = document.documentElement;
console.log(htmlEle);
*/
//-------------------------------------------------------------------------
let btn = document.querySelector(".showTime");
let div = document.querySelector(".showTime1");

btn.onclick = function () {
    div.innerText = getData();
}

function getData() {
    let time = new Date();//如果没有参数，返回当前时间；
    let year = time.getFullYear();
    let month = time.getMonth() + 1;
    month = month < 10 ? "0" + month : month;
    let times = time.getDate();
    times = times < 10 ? "0" + times : times;
    let arr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
    let day = time.getDay();
    let hour = time.getHours();
    hour = hour < 10 ? "0" + hour : hour;
    let minutes = time.getMinutes();
    let seconds = time.getSeconds();
    seconds = seconds < 10 ? "0" + seconds : seconds;
    return "今天是" + year + "年" + month + "月" + times + "日" + arr[day]
        + hour + "点" + minutes + "分" + seconds + "秒";
}

//元素可以不同用加事件，《刷新得时间》
let p = document.querySelector("p");
p.innerText = getData();
//-------------------------------------------------------------------------
//innerText和innerHtml的区别
/*
let p1 = document.querySelector("p");
p1.innerText = "<strong>刷新得时间</strong>";//不识别Html标签
p1.innerHTML = "<strong>刷新得时间</strong>";//可以识别Html标签
*/
//-------------------------------------------------------------------------
//点击按钮更换图片
let one = document.getElementById("one");
let two = document.getElementById("two");
let img = document.querySelector("img");
one.onclick = function () {
    img.src = "img/1.jpg";
    img.title = "第一张图片";
}
two.onclick = function () {
    img.src = "img/2.jpg";
    img.title = "第二张图片";
}
//-------------------------------------------------------------------------
let div1 = document.getElementById("aft");
let data = new Date();
let h = data.getHours();
if (h <= 6 && h >= 0) {
    div1.innerHTML = "凌晨了注意身体！！"
} else if (h > 6 && h <= 12) {
    div1.innerHTML = "早上好，又是朝气满满的一天！！"
} else if (h > 12 && h <= 18) {
    div1.innerHTML = "下午好，加油💪，马上就下班了！！"
} else if (h > 18 && h <= 24) {
    div1.innerHTML = "陪陪老婆，早点休息吧！！"
}
//-------------------------------------------------------------------------
let btn1 = document.getElementById("btn1");
let input = document.querySelector("input");
btn1.onclick = function () {
    input.value = "我被点击了";
    //点击一次之后禁用此按钮
    // btn1.disabled = true;
    this.disabled = true;
}
//-------------------------------------------------------------------------
//仿京东登录
let eye = document.getElementById("eye");
let password = document.getElementById("password");
let flag = false;
eye.onclick = function () {
    if (flag === true) {
        password.type = "password";
        eye.src = "img/2.jpg"
        flag = true;
    } else {
        password.type = "text";
        eye.src = "img/1.jpg"
        flag = false;
    }
}
//-------------------------------------------------------------------------
//点击后更改样式
let box3 = document.getElementById("box3");
let flag1 = false;
box3.onclick = function () {
    if (flag1 === true) {
        this.style.height = "300px"
        this.style.backgroundColor = "pink";
        flag1 = false;
    } else {
        this.style.width = "300px"
        this.style.backgroundColor = "red";
        flag1 = true;
    }
}
//-------------------------------------------------------------------------
//点击按钮隐藏元素
let btn2 = document.querySelector(".class-btn");
let box4 = document.querySelector(".box4")
btn2.onclick = function () {
    box4.style.display = "none";
}
//-------------------------------------------------------------------------
// 1. 获取元素 所有的小li
let lis1 = document.querySelectorAll('li');
for (let i = 0; i < lis1.length; i++) {
    // 让索引号 乘以 44 就是每个li 的背景y坐标  index就是我们的y坐标
    let index = i * 44;
    lis1[i].style.backgroundPosition = '0 -' + index + 'px';
}
//-------------------------------------------------------------------------
// 1.获取元素
let text = document.getElementById('input3');
// 2.注册事件 获得焦点事件 onfocus
text.onfocus = function () {
    // console.log('得到了焦点');
    if (this.value === '默认字段') {
        this.value = '';
    }
    // 获得焦点需要把文本框里面的文字颜色变黑
    this.style.color = '#333';
}
// 3. 注册事件 失去焦点事件 onblur
text.onblur = function () {
    // console.log('失去了焦点');
    if (this.value === '') {
        this.value = '默认字段';
    }
    // 失去焦点需要把文本框里面的文字颜色变浅色
    this.style.color = '#999';
}
//-------------------------------------------------------------------------
// 1. 使用 element.style 获得修改元素样式  如果样式比较少 或者 功能简单的情况下使用
let test = document.querySelector('.box6');
test.onclick = function () {
    // 2. 我们可以通过 修改元素的className更改元素的样式 适合于样式较多或者功能复杂的情况
    // 3. 如果想要保留原先的类名，我们可以这么做 多类名选择器
    // this.className = 'change';
    this.className = 'box6 change';
}
//-------------------------------------------------------------------------
// 首先判断的事件是表单失去焦点 onblur
// 如果输入正确则提示正确的信息颜色为绿色小图标变化
// 如果输入不是6到16位，则提示错误信息颜色为红色 小图标变化
// 因为里面变化样式较多，我们采取className修改样式
// 1.获取元素
let ipt = document.querySelector('.ipt');
let message = document.querySelector('.message');
//2. 注册事件 失去焦点
ipt.onblur = function () {
    // 根据表单里面值的长度 ipt.value.length
    if (this.value.length < 6 || this.value.length > 16) {
        // console.log('错误');
        message.className = 'message wrong';
        message.innerHTML = '您输入的位数不对要求6~16位';
    } else {
        message.className = 'message right';
        message.innerHTML = '您输入的正确';
    }
}
//-------------------------------------------------------------------------
let btns1 = document.getElementsByTagName("button");
for (let i = 0; i < btns1.length; i++) {
    btns1[i].onclick = function () {
        for (let i = 0; i < btns1.length; i++) {
            btns1[i].style.backgroundColor = "";
        }
        this.style.backgroundColor = "red";
    }
}
//-------------------------------------------------------------------------
//百度换肤
// 1. 获取元素
let imgs = document.querySelector('.baidu').querySelectorAll('img');
// console.log(imgs);
// 2. 循环注册事件
for (let i = 0; i < imgs.length; i++) {
    imgs[i].onclick = function () {
        // this.src 就是我们点击图片的路径   images/2.jpg
        // console.log(this.src);
        // 把这个路径 this.src 给body 就可以了
        document.body.style.backgroundImage = 'url(' + this.src + ')';
    }
}
//-------------------------------------------------------------------------
// 数据表格隔行变色
// 1.获取元素 获取的是 tbody 里面所有的行
let trs = document.querySelector('tbody').querySelectorAll('tr');
// 2. 利用循环绑定注册事件
for (let i = 0; i < trs.length; i++) {
    // 3. 鼠标经过事件 onmouseover
    trs[i].onmouseover = function() {
        // console.log(11);
        this.className = 'bg';
    }
    // 4. 鼠标离开事件 onmouseout
    trs[i].onmouseout = function() {
        this.className = '';
    }
}
//-------------------------------------------------------------------------
// 表单全选功能
// 1. 全选和取消全选做法：  让下面所有复选框的checked属性（选中状态） 跟随 全选按钮即可
// 获取元素
let j_cbAll = document.getElementById('j_cbAll'); // 全选按钮
let j_tbs = document.getElementById('j_tb').getElementsByTagName('input'); // 下面所有的复选框
// 注册事件
j_cbAll.onclick = function() {
    // this.checked 它可以得到当前复选框的选中状态如果是true 就是选中，如果是false 就是未选中
    console.log(this.checked);
    for (let i = 0; i < j_tbs.length; i++) {
        j_tbs[i].checked = this.checked;
    }
}
// 2. 下面复选框需要全部选中， 上面全选才能选中做法： 给下面所有复选框绑定点击事件，每次点击，都要循环查看下面所有的复选框是否有没选中的，如果有一个没选中的， 上面全选就不选中。
for (let i = 0; i < j_tbs.length; i++) {
    j_tbs[i].onclick = function() {
        // flag 控制全选按钮是否选中
        let flag = true;
        // 每次点击下面的复选框都要循环检查者4个小按钮是否全被选中
        for (let i = 0; i < j_tbs.length; i++) {
            if (!j_tbs[i].checked) {
                flag = false;
                break; // 退出for循环 这样可以提高执行效率 因为只要有一个没有选中，剩下的就无需循环判断了
            }
        }
        j_cbAll.checked = flag;
    }
}
//-------------------------------------------------------------------------
// 自定义属性选择
let div = document.querySelector('div');
// 1. 获取元素的属性值
// (1) element.属性
console.log(div.id);
//(2) element.getAttribute('属性')  get得到获取 attribute 属性的意思 我们程序员自己添加的属性我们称为自定义属性 index
console.log(div.getAttribute('id'));
console.log(div.getAttribute('index'));
// 2. 设置元素属性值
// (1) element.属性= '值'
div.id = 'test';
div.className = 'navs';
// (2) element.setAttribute('属性', '值');  主要针对于自定义属性
div.setAttribute('index', 2);
div.setAttribute('class', 'footer'); // class 特殊  这里面写的就是class 不是className
// 3 移除属性 removeAttribute(属性)
div.removeAttribute('index');
//-------------------------------------------------------------------------
// tab卡片切换
// 获取元素
let tab_list = document.querySelector('.tab_list');
let lis = tab_list.querySelectorAll('li');
let items = document.querySelectorAll('.item');
// for循环绑定点击事件
for (let i = 0; i < lis.length; i++) {
    // 开始给5个小li 设置索引号
    lis[i].setAttribute('index', i);
    lis[i].onclick = function() {
        // 1. 上的模块选项卡，点击某一个，当前这一个底色会是红色，其余不变（排他思想） 修改类名的方式

        // 干掉所有人 其余的li清除 class 这个类
        for (let i = 0; i < lis.length; i++) {
            lis[i].className = '';
        }
        // 留下我自己
        this.className = 'current';
        // 2. 下面的显示内容模块
        let index = this.getAttribute('index');
        console.log(index);
        // 干掉所有人 让其余的item 这些div 隐藏
        for (let i = 0; i < items.length; i++) {
            items[i].style.display = 'none';
        }
        // 留下我自己 让对应的item 显示出来
        items[index].style.display = 'block';
    }
}